// 简答题
/*
  1、前端工程化：一切能提升前端开发效率，提高前端应用质量的手段和工具都是前端工程化
  价值：
    （1），提升开发效率：社区出现大量的优秀框架和工具，将前端工程师从繁重的工作中解脱出来；
    （2），降低大型项目的开发难度，模块化的思想将大型项目的功能进行分解，拆分成一个个独立的模块；
    （3），提高应用程序质量，固定的重复性工作程序化，降低出错率。

  2、脚手架意义：
    （1），开发前，用于创建项目结构；
    （2），开发中，监听修改，自动编译，自动更新至浏览器，提高开发效率；
    （3），开发后，打包发布文件，打包过程中重新组织代码结构，减小文件大小，甚至自动发布等。

  3、脚手架实现过程： 
     使用现成的脚手架 ---- 安装相关依赖: yarn global add yo，安装对应generator: yarn global add generator-node，通过yo运行generator:  yo node  
    （1）一个generator本质上就是一个npm模块，其有一定的基本结构，如下：
        generators/        生成器目录
          app/             默认生成器目录
            index.js       默认生成器实现
          component        其他子生成器目录
            index.js       
        package.json       模块包配置文件
    （2）新建一个项目 yarn init -y，安装 yeoman-generator基类 ---- yarn add yeoman-generator
    （3）按照generator项目目录结构要求，设置好目录结构，其中index.js需导出一个继承自Yeoman Generator的类型
        Yeoman Generator在工作时会调用我们在此类型中定义的生命周期方法，同时，在此类中可以调用父类提供的一些工具方法
        实现一些功能，如文件拷贝写入等

    自定义小型脚手架工具

  4、使用Gulp完成项目的自动化构建

  5、使用Grunt完成项目的自动化构建
*/